//package model;
//
//import java.awt.BorderLayout;
//import java.awt.GridLayout;
//import java.io.File;
//import java.lang.management.ManagementFactory;
//import java.lang.management.ThreadMXBean;
//import java.sql.SQLException;
//import java.util.Date;
//import java.util.List;
//
//import  org.jfree.chart.ChartFactory;
//import  org.jfree.chart.ChartFrame;
//import org.jfree.chart.ChartPanel;
//import  org.jfree.chart.JFreeChart;
//import org.jfree.chart.plot.PiePlot;
//import org.jfree.chart.plot.PiePlot3D;
//import org.jfree.chart.plot.PlotOrientation;
//import org.jfree.data.category.CategoryDataset;
//import org.jfree.data.category.DefaultCategoryDataset;
//import org.jfree.data.general.DatasetChangeListener;
//import org.jfree.data.general.DatasetGroup;
//import  org.jfree.data.general.DefaultPieDataset;
//
////Import the Swing classes
//import java.awt.*;
//import java.awt.event.*;
//import javax.swing.*;
//
////Import the JFreeChart classes
//import org.jfree.chart.*;
//import org.jfree.chart.plot.*;
//import org.jfree.data.*;
//import org.jfree.data.general.*;
//
//
//public class Monitoring extends JPanel {
//	
//static com.sun.management.OperatingSystemMXBean composantSystem = (com.sun.management.OperatingSystemMXBean)
//			
//			ManagementFactory.getOperatingSystemMXBean();
//	
//			// Récupération des informations sur la mémoire RAM du serveur
//			static double MemoireRAMTotale = new Double(composantSystem.getTotalPhysicalMemorySize() / (1024*1024) );
//			static double MemoireRAMLibre = new Double(composantSystem.getFreePhysicalMemorySize() / (1024*1024) );
//			static double MemoireRAMUtilisee = MemoireRAMTotale - MemoireRAMLibre;
//			 
//			// Récupération des informations sur la mémoire SWAP du serveur
//			static double MemoireSWAPTotale = new Double(composantSystem.getTotalSwapSpaceSize() / (1024*1024));
//			static double MemoireSWAPLibre = new Double(composantSystem.getFreeSwapSpaceSize() / (1024*1024));
//			static double MemoireSWAPUtilisee = MemoireSWAPTotale - MemoireSWAPLibre;
//			
//			// Récupération des informations sur les CPUs du serveur
//			// CPU time : Temps CPU utilisé par les processeurs sur lesquels la JVM fonctionne
//			static long CPUTime = new Long(composantSystem.getProcessCpuTime() / 1000000); 
//
//			static int NbProcesseurServeur = new Integer(composantSystem.getAvailableProcessors());
//			
//			static double ChargeCPUServeur = new Double( composantSystem.getSystemLoadAverage() / composantSystem.getAvailableProcessors());
//			
//			static double ChargeCPULibre = (1 - ChargeCPUServeur);
//			
//			static double EspaceDisqueUtilise;
//			static double EspaceDisqueLibre;
//			static double EspaceDisqueTotal;
//			
//			
//			
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
//									//MODIF YO//
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
//			
//			
//			// Holds the data
//			private static DefaultPieDataset dataset = new DefaultPieDataset();
//			private static DefaultPieDataset dataset1 = new DefaultPieDataset();
//			private static DefaultPieDataset dataset2 = new DefaultPieDataset();
//			private static DefaultPieDataset dataset3 = new DefaultPieDataset();
////			private static CategoryDataset dataset4 = DatasetUtilities.createCategoryDataset("S","C", data);
//			private static DefaultCategoryDataset dataset5 = new DefaultCategoryDataset();
//			private static DefaultCategoryDataset dataset6 = new DefaultCategoryDataset();
//			private static DefaultCategoryDataset dataset7 = new DefaultCategoryDataset();
//
//			// Create a set of charts
//			private static JFreeChart chart1;
//			private static JFreeChart chart2;
//			private static JFreeChart chart3;
//			private static JFreeChart chart4;
//			private static JFreeChart chart5;
//			private static JFreeChart chart6;
//			private static JFreeChart chart7;
//			private static JFreeChart chart8;
//
//			//Variable pour les requete SQLs
//			private static ConnexionDb connex;
//			private int confcreeprivee;
//			private int confcreepublique;
//			private int confcoursprivee;
//			private int confcourspublique;
//			private int confterminerprivee;
//			private int confterminerpublique;
//			private int confusernoninscrit;
//			private int confuserinscrit;
//
//
//			// Create a set of panels that can show charts
//			private ChartPanel panel1;
//			private ChartPanel panel2;
//			private ChartPanel panel3;
//			private ChartPanel panel4;
//			private ChartPanel panel5;
//			private ChartPanel panel6;
//			private ChartPanel panel7;
//			private ChartPanel panel8;
//			
//			// Constructeur primitif
//			public Monitoring(ConnexionDb connexion)
//			{
//				connex=connexion;
//				monitoring();
//			}
//
//			//Methode pour afficher les graphes
//			public void monitoring()
//			{
//				
//			 // Initialize the dataset
//				System.out.println("7");
//				dataset.setValue("MemoireRAMLibre",MemoireRAMLibre);
//			    dataset.setValue("MemoireRAMUtilisee",MemoireRAMUtilisee);
//			    
//			    dataset1.setValue("MemoireSWAPLibre",MemoireSWAPLibre);
//			    dataset1.setValue("MemoireSWAPUtilisee",MemoireSWAPUtilisee);
//			    
//			    dataset2.setValue("Charge CPU Serveur Libre",ChargeCPULibre);
//			    dataset2.setValue("Charge CPU Serveur Occupée",ChargeCPUServeur);
//			    
//			    dataset3.setValue("EspaceDisqueDurUtilisé",EspaceDisqueUtilise);
//			    dataset3.setValue("EspaceDisqueLibre",EspaceDisqueLibre);
//			    
////			    dataset4.setValue(6, "Profit11", "a");
//			    
////			    dataset5.setValue("NbConfPrivee", confcreeprivee);
////			    dataset5.setValue("NbConfPrivee", confcoursprivee);
////			    dataset5.setValue("NbConfPrivee", confterminerprivee);
////			   
////			    dataset6.setValue("Utilisateur", confuserinscrit);
////			    dataset6.setValue("Utilisateur", confusernoninscrit);
////			    
////			    dataset7.setValue("NbConfPublique", confcreepublique );
////			    dataset7.setValue("NbConfPublique", confcourspublique);
////			    dataset7.setValue("NbConfPublique", confterminerpublique);
//			    
//			    dataset5.setValue(7, "Nb Conf Créée", "Créée");
//			    dataset5.setValue(8, "Nb Conf en cours", "En cours");
//			    dataset5.setValue(20, "Nb Conf terminée", "Terminée");
//			   
//			    dataset6.setValue(10, "Utilisateurs inscrits", "Users inscrits");
//			    dataset6.setValue(11, "Utilisateurs non inscrits", "Users non inscrits");
//			    
//			    dataset7.setValue(7, "Nb Conf Créée", "Créée");
//			    dataset7.setValue(8, "Nb Conf en cours", "En cours");
//			    dataset7.setValue(4, "Nb Conf terminée", "Terminée");
//
//			 // Create the charts
//			    System.out.println("8");
//			 chart1 = ChartFactory.createPieChart3D(
//			   "Memoire RAM", // The chart title
//			   dataset,         // The dataset for the chart
//			   true,          // Is a legend required?
//			   true,          // Use tooltips
//			   false          // Configure chart to generate URLs?
//			 );
//			 
//			 
//			 
//			 System.out.println("9");
//			 chart2 = ChartFactory.createPieChart3D(
//			   "Memoire SWAP", // The chart title
//			   dataset1,         // The dataset for the chart
//			   true,          // Is a legend required?
//			   true,          // Use tooltips
//			   false          // Configure chart to generate URLs?
//			 );
//
//
//			 System.out.println("10");
//			 chart3 = ChartFactory.createPieChart3D(
//			   "CPU (3D Pie Chart)", // The chart title
//			   dataset2,         // The dataset for the chart
//			   true,          // Is a legend required?
//			   true,          // Use tooltips
//			   false          // Configure chart to generate URLs?
//			 );
//			 
//			 System.out.println("11");
//			 chart4 = ChartFactory.createPieChart3D(
//			   "Espace Disque", // The chart title
//			   dataset3,         // The dataset for the chart
//			   true,          // Is a legend required?
//			   true,          // Use tooltips
//			   false          // Configure chart to generate URLs?
//			 );
//
//			 
//			
////			 chart5 = ChartFactory.createLineChart("Network", 
////					 "Network", 
////					 "kps", 
////					 dataset4, 
////					 PlotOrientation.VERTICAL, 
////					 true, 
////					 true, 
////					 false);
//			 
//			 chart6 = ChartFactory.createBarChart3D("Nb Conf privée", 
//					 "Conferenceprivée", 
//					 "nb conf", 
//					 dataset5, 
//					 PlotOrientation.HORIZONTAL, 
//					 true, 
//					 true, 
//					 false);
//			 
//			 
//			 chart7 = ChartFactory.createBarChart3D("Utilisateurs", 
//					 "Utilisateurs", 
//					 "Utilisateurs", 
//					 dataset6, 
//					 PlotOrientation.HORIZONTAL, 
//					 true, 
//					 true, 
//					 false);
//			 
//			 
//			 chart8 = ChartFactory.createBarChart3D("Nb Conf publique", 
//					 "Conference publique", 
//					 "nb conf", 
//					 dataset7, 
//					 PlotOrientation.HORIZONTAL, 
//					 true, 
//					 true, 
//					 false);
//			 
//			 // Create this panel
//			 System.out.println("12");
//			 this.setLayout( new GridLayout( 2, 2 ) );
//			 this.panel1 = new ChartPanel( chart1 );
//			 this.panel2 = new ChartPanel( chart2 );
//			 this.panel3 = new ChartPanel( chart3 );
//			 this.panel4 = new ChartPanel( chart4 );
////			 this.panel5 = new ChartPanel( chart5 );
//			 this.panel6 = new ChartPanel( chart6 );
//			 this.panel7 = new ChartPanel( chart7 );
//			 this.panel8 = new ChartPanel( chart8 );
//			 this.add( panel1 );
//			 this.add( panel2 );
//			 this.add( panel3 );
//			 this.add( panel4 );
////			 this.add( panel5 );
//			 this.add( panel6 );
//			 this.add( panel7 );
//			 this.add( panel8 );
//
//			 try {
//			 confcreeprivee = connex.monitoringConferenceCreePrivee();
//			 System.out.println("test 1 : " + confcreeprivee);
//			 
//			 confcreepublique = connex.monitoringConferenceCreePublique();
//			 System.out.println("test 2 : " + confcreepublique);
//			 
//			 confcoursprivee = connex.monitoringConferenceEnCoursPrivee();
//			 System.out.println("test 3 : " + confcoursprivee);
//			 
//			 confcourspublique = connex.monitoringConferenceEnCoursPublique();
//			 System.out.println("test 4 : " + confcourspublique);
//			 
//			 confterminerprivee = connex.monitoringConferenceTerminerPrivee();
//			 System.out.println("test 5 : " + confterminerprivee);
//			 
//			 confterminerpublique = connex.monitoringConferenceTerminerPublique();
//			 System.out.println("test 6 : " + confterminerpublique);
//			 
//			 confuserinscrit = connex.monitoringUtilisateursInscrit();
//			 System.out.println("test 7 : " + confuserinscrit);
//			 
//			 confusernoninscrit = connex.monitoringUtilisateursNonInscrit();
//			 System.out.println("test 8 : " + confusernoninscrit);
//			 } catch (Exception e) {
//				    System.out.println("Erreur :" + e.getMessage());
//				    System.out.println("Erreur :" + e);
//			}			 
//		}
//			
// 
//			public static void systemtest() throws SQLException {
//				
//				File[] roots = File.listRoots();
//				boolean DD = false;
//				
//				for (File root : roots)
//				
//				{
//					while (DD == false) {
//				
//				System.out.println("Disque dur : " + root.getAbsolutePath());
//				
//				EspaceDisqueTotal = new Double(root.getTotalSpace() / (1024*1024));
//				
//				EspaceDisqueLibre = new Double(root.getFreeSpace() / (1024*1024));
//				
//				EspaceDisqueUtilise = EspaceDisqueTotal - EspaceDisqueLibre;
//				
//				System.out.println("Espace Disque Totale : " + EspaceDisqueTotal + " Mo");
//								
//				System.out.println("Esapce Disque Utilisée : " + EspaceDisqueUtilise  + " Mo");
//				
//				System.out.println("Espace Disque Libre : " + EspaceDisqueLibre + " Mo" + "\n");
//				
//				DD = true;
//					}
//				}
//			}
//			
//  public static void main(String[] args) throws SQLException {
//	  
//	  	System.out.println("Mémoire RAM Totale :"+ MemoireRAMTotale + " Moctets");
//		System.out.println("Mémoire RAM Utilisée :"+ MemoireRAMUtilisee + " Moctets");
//		System.out.println("Mémoire RAM Libre :"+ MemoireRAMLibre + " Moctets" + "\n");
//		
//		System.out.println("Mérmoire SWAP Totale :"+ MemoireSWAPTotale + " Moctets");
//		System.out.println("Mémoire SWAP Utilisée:"+ MemoireSWAPUtilisee + " Moctets");
//		System.out.println("Mémoire SWAP  Libre :"+ MemoireSWAPLibre + " Moctets" + "\n");
//		
//		System.out.println("CPU Time :" + CPUTime + " ms");
//		System.out.println("Nombre de processeur sur le serveur :" + NbProcesseurServeur);
//		System.out.println("Charge moyenne CPU :" + ChargeCPUServeur + "\n");
//										
//		System.out.println("Java Runtime Information.");
//		System.out.println(System.getProperty("java.runtime.name") + " version " + System.getProperty("java.runtime.version") + System.getProperty("java.vm.version") + " by " + System.getProperty("java.vm.vendor") + "\n");
//		
//		System.out.println("Système d'exploitation du serveur");
//		System.out.println("OS appears to be: " + System.getProperty("os.name") + " Version " + System.getProperty("os.version") + " on " + System.getProperty("os.arch") + " architechture" + "\n");
//
//		systemtest();
//
//		
//		System.out.println("1");
//		JFrame frame = new JFrame( "Monitoring serveur" );
//		System.out.println("2");
//		Monitoring chart = new Monitoring(connex);
//		 System.out.println("3");
//		 frame.getContentPane().add( chart, BorderLayout.CENTER );
//		 System.out.println("4");
//		 frame.setSize( 640, 480 );
//		 System.out.println("5");
//		 frame.setVisible( true );
//		 System.out.println("6");
//		 frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
//		 System.out.println("13");
//		
//  }
//
//}
